home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_b / pasexp.pas < prev    next >
Pascal/Delphi Source File  |  1995-04-22  |  650b  |  33 lines

  1. FUNCTION Power(a,n : Real) : Real;
  2. (* LITE VERSION *)
  3. BEGIN
  4.   Power := Exp(n * Ln(a))
  5. END; (* Power, 'lite' version *)
  6.  
  7.  
  8. FUNCTION Power (x : Real; n : Real) : Real;
  9. (* PRO VERSION *)
  10.  
  11.   FUNCTION Pwr(n : Integer) : Real;
  12.   BEGIN (* Recursive Pwr function *)
  13.     IF n = 1 THEN 
  14.       Pwr := x
  15.     ELSE IF Odd(n) THEN
  16.       Pwr := Sqr(Pwr(n DIV 2)) * x
  17.     ELSE
  18.       Pwr := Sqr(Pwr(n DIV 2))
  19.   END;(* Pwr *)
  20.  
  21. BEGIN (* Power *)
  22.   IF x = 0 THEN
  23.     Power :=0
  24.   ELSE IF n = 0 THEN
  25.     Power := 1
  26.   ELSE IF Frac(n) <> 0 THEN
  27.       Power := Exp(n * Ln(x))
  28.   ELSE IF n < 0 THEN
  29.     Power := 1/Pwr(-Trunc(n))
  30.   ELSE
  31.     Power := Pwr(Trunc(n))
  32. END;(* Power *)
  33.